Short: Guide for speeding up Quake modifications. Uploader: christian.michael@groenjord.dk Author: christian.michael@groenjord.dk Type: game/misc This is a guide for optimizing Quake modifications, as requested by some of those who have emailed me regarding qboost3. I have included some files from qboost3, which you can use in your own modifications. ------------------------------------------------------------ Basic info: Quake datafiles are usually stored in pakfiles. The internal structure of a pakfile looks like this: PAK0.PAK/ progs/ maps/ sound/ ambience/ player/ misc/ .... progs.dat quake.rc With regard to speeding up quake, the progs subdir is the most important one. It contains the models for players, monsters, weapons and items, except ammo-boxes. The format of these models are .spr and .mdl. Ammobox models are in the bsp format, and are found in maps/. Mdl files contains texture and 3d data, along with flags for emission of smoke, light, rotation and such. Especially light is cpu-intensive, which is why I replaced the missile.mdl in quake with the grenade.mdl, which only emits smoke. (qboost packages) The model formats in quake are cross compatible, which means that you can use a sprite or a compiled mapfile(bsp) in place of a mdl, by renaming it. The shaft mdl (bolt2.mdl) can for optimal performance be replaced with bubble.spr, if the file is renamed to bolt2.mdl. Secondly there is the possibility of using so called null mdl's. The removal of torches in the qboost packages was acomplished by creating an extremely small invalid map in a simple text editor. I compiled it with qbsp, and got the error: no filling performed. This was intentional, since it means that the the resulting bsp file will not be rendered in the game. I copied and renamed my null.bsp to "flame.mdl" and "flame2.mdl" and stored these files in the progs-subdir in my qboost gamedir. The very same null.mdl was used as gib.mdl, gib2.mdl and gib3.mdl. Third, the rotating weaponmodels are quite complex. To optimize the rendering of theese, I created a simple model in the map format, compiled it with different pastel colored textures (for easier spotting in low resolutions), compiled it with qbsp and renamed the bsp flies to the desired weaponmodel. This is a very simple way of removing unnecessary cosmetics from quake, bot modifications, missionpacks, ctf, teamfortress, malice and so on.. It is very important to know the name of datafile you want to replace, since there need not be any name conformity between the different quake modifications. Malice is an example of such non conforming modelnames. I will try to illustrate the process of optimizing, using malice as an example. Practical instructions: Malice consists of serveral pakfiles. First you have to extract the contents of ALL of the pakfiles in a gamedir of your choice (ex: Malice_test/). The gamedir should have exactly the same structure as the pakfiles, which means a "progs" subdir, a "sound" subdir, including it's own range of subdirs, and so on... THE STRUCTURE MUST be intact, since the progs.dat instructs the executable to search for datafiles in speciffic dirs. Now look at the progs subdir. There should be a file called rocket.mdl. Move this file to a "storage-dir", in case you want to use it again. Next, you take the mdl you might want to use in place of the original (grenade.mdl from original quake is an example), and rename it to rocket.mdl. Now start Malice, using the Malice_test gamedir. Find a map where the rocketlauncher is easy to get to. Pick it up, and try launching a few rockets. You should now notice, that the rockets no longer emit light, and you have succesfully speeded up this aspect of the game. Now, you might consider replacing any complex models by simpler ones, or if there is any dynamic models in malice (like torches and fire), which doesn't serve any other purpose than "looking cool", you should consider replacing these with a null.mdl - Unfortunately you have to identify the datafiles by the "trial and error" method, since the names are not always logical. To ease your quest for optimization, I have included a null.mdl, and some simple representations of weapons from qboost3. The weapons are named to conform with normal quake. REMEMBER TO RENAME THESE, IN ORDER TO MAKE THEM REPRESENT SOME PARTICULAR MODEL USED BY THE MOD YOU WANT TO OPTIMIZE. These datafiles are made by me. You may use them as you like. You will have to locate the files to be replaced yourself. I hope this guide will help you, since this is my last project which is aimed at both singleplayer and multiplayer quake. I'm currently working on a servermod for original quake. It features observer cameras, different matchmodes with simultaneous starts, rocketarena support and other cool stuff. The server is controlled by the players, using a voting system. If anyone knows CRmod, which is the most widely used mod for quake deathmatch-tournaments, I can tell that my modification a lot like it. However, my modification is designed to be as fast as possible with regard to comsumption of bandwith and cpu-power requirements. Christian Michael.